package Tool; /**
 * 项目名称：search
 * 文件名称：Tool.FastJsonUtils.java
 * ©重庆六阶圣手网络科技有限公司   版权所有
 * 创建日期： 2015-11-24
 * @author: liaoGaoZhi
 */

import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/**
 * 
 * Class description：
 *     ----  FastJson工具类(阿里巴巴)
 * 
 * @author liaoGaoZhi
 *
 * 创建日期：2015-11-24
 *
 */
public class FastJsonUtils {
	
	/**
	 * 
	 * Method description：
	 *   ---- 将List对象序列化为JSON文本
	 * 参数说明：
	 * @param list
	 * @return
	 *
	 * 返回类型：String
	 */
	@SuppressWarnings("unchecked")
	public static <T> String listToJson(List<T> list) {
		String string = null;
		try {
			string = new JSONArray((List<Object>) list).toJSONString();
		} catch (Exception e) {
		}
        return string;
    }
	
	/**
	 * 
	 * Method description：
	 *   ---- 将Map对象序列化为JSON文本
	 * 参数说明：
	 * @param map
	 * @return
	 *
	 * 返回类型：String
	 */
	public static String mapToJson(Map<String, Object> map) {
		String string = null;
		try {
			string = new JSONObject(map).toJSONString();
		} catch (Exception e) {
		}
        return string;
    }
	
	/**
	 * 
	 * Method description：
	 *   ---- 将Map集合序列化为JSON文本
	 * 参数说明：
	 * @param map
	 * @return
	 *
	 * 返回类型：String
	 */
	public static String mapListToJson(List<Map<String, Object>> list) {
		String string = null;
		try {
			string = JSON.toJSONString(list);
		} catch (Exception e) {
		}
        return string;
    }
	
	/**
	 * 
	 * Method description：
	 *   ---- 将JavaBean对象序列化为JSON文本
	 * 参数说明：
	 * @param object
	 * @return
	 *
	 * 返回类型：String
	 */
	public static String objectToJson(Object object) {
		String string = null;
		try {
			string = JSON.toJSONString(object);
		} catch (Exception e) {
		}
        return string;
    }
	
	/**
	 * 
	 * Method description：
	 *   ---- 将JSON对象数组序列化为JSON文本
	 * 参数说明：
	 * @param jsonArray
	 * @return
	 *
	 * 返回类型：String
	 */
	public static String jsonArrayToJson(JSONArray jsonArray){
		String string = null;
		try {
			string = JSON.toJSONString(jsonArray);
		} catch (Exception e) {
		}
		return string;
	}
	
	/**
	 * 
	 * Method description：
	 *   ---- (反序列化)将JSON字符串 解析成为一个 List<JavaBean>
	 * 参数说明：
	 * @param jsonlist JSON对象数组
	 * @param objectClass object。class
	 *
	 * 返回类型：List<T>
	 */
	public static <T> List<T> jsonToListBeans(String jsonlist, Class<T> objectClass){
		List<T> list = null;
		try {
			list= JSON.parseArray(jsonlist, objectClass);
		} catch (Exception e) {
		}
		return list;
	}
	
	/**
	 * 
	 * Method description：
	 *   ---- (反序列化)将JSON字符串 解析成为一个 List<String>
	 * 参数说明：
	 * @param jsonlist JSON对象数组
	 * @param objectClass object。class
	 *
	 * 返回类型：List<T>
	 */
	public static List<String> jsonToListStrings(String jsonString){
		List<String> list = null;
		try {
			list= JSON.parseObject(jsonString,new TypeReference<List<String>>(){});
		} catch (Exception e) {
		}
		return list; 
	}
	
	/**
	 * 
	 * Method description：
	 *   ---- 将jsonString 解析成 List<Map<String,Object>>(Map集合)
	 * 参数说明：
	 * @param jsonString
	 * @return
	 *
	 * 返回类型：List<Map<String,Object>>
	 */
	public static List<Map<String, Object>> jsonToMapList(String jsonString){
		List<Map<String,Object>> list=null;
		try {
			list = JSON.parseObject(jsonString,new TypeReference<List<Map<String,Object>>>(){});
		} catch (Exception e) {
		}
		return list;
	}
	
	/**
	 * 
	 * Method description：
	 *   ---- 将jsonString 解析成 Map<String,Object>(单个Map)
	 * 参数说明：
	 * @param jsonString
	 * @return
	 *
	 * 返回类型：List<Map<String,Object>>
	 */
	public static Map<String, Object> jsonToMap(String jsonString){
		Map<String, Object> map = null;
		try {
			map = JSON.parseObject(jsonString,new TypeReference<Map<String,Object>>(){});
		} catch (Exception e) {
		}
		return map;
	}
	
	/**
	 * 
	 * Method description：
	 *   ---- JSON对象转换为传入类型的object(反序列化)将JSON字符串解析为一个 JavaBean 
	 * 参数说明：
	 * @param jsonObject JSON对象
	 * @param objectClass object。class
	 * @return
	 *
	 * 返回类型：T
	 */
	public static <T> T jsonToObject(String jsonObject, Class<T> objectClass){
		T t = null;
		try {
			t = JSON.parseObject(jsonObject, objectClass);
		} catch (Exception e) {
		}
		return t;
	}
	
}
